@火凤凰
2年前 提问
1个回答

失效的身份认证与会话管理漏洞是什么

安全小白成长记
2年前

失效的身份认证和会话管理漏洞是指,应用程序的权限管理和会话管理模块在处理用户登入登出、密码管理和用户登录信息本地存储等方面,存在认证被绕过或者身份信息被截获破解的可能。简单来说就是应用程序中与身份验证或者会话相关的功能未正确实现,导致攻击者可以破坏密码、密钥、会话令牌或者利用其他缺陷来假冒用户的身份,达到攻击的目的。常见的利用方式有凭证填充、弱密码、密码破解、不安全的密码存储、越权访问等。

预防失效的身份认证与会话管理漏洞措施有以下这些:

  • 始终生成新的会话。如用户登录成功生成新ID,登录失败后尝试再次登录时原有的ID失效,重新给与一个新ID,防止ID重用,

  • 不应使用简单或可预期的密码恢复问题,登录出错时不应提供太多的提示,应使用统一的出错提示。

  • 登录验证成功后更换Session ID,并且最好使用128位以上具备随机性的Session ID,不应在URL中显示Session ID。

  • 第一次登录时强制修改密码,对多次登录失败的账号进行短时锁定,设置会话闲置超时,超时后强制刷新页面否则无法登陆。

  • 提供用户注销退出功能,用户关闭浏览器或者注销时,删除用户Session;

  • 保护Cookie,如在应用程序中为Cookie设置安全属性为Secure flag和HttpOnly flag。

  • 强制使用一定复杂度的密码且加密存储,登录验证使用用户名、密码、后台验证码三者结合,验证码具有时效性,登录失败后的提示信息模糊化,不得提示具体是用户名错误还是密码错误。

  • 登录后的接口均需要携带认证后的token方可正确访问,token具有时效性,超时将会失效,时效时长设置合理。

  • 不需要认证的接口,也需要采用公司内部制定的token生成方法,前端工程师调用接口时携带,且前端代码必须被混淆。